package grupo1.fotomultas.Fotomultas.Notificaciones;

import grupo1.fotomultas.Fotomultas.Infracciones.Infraccion;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class HomeNotificaciones {
	
	protected static HomeNotificaciones instance = null;
	private Set<Notificacion> notificaciones = null;
	
	public Set<Notificacion> notificaciones(Infraccion infraccion){
		Set<Notificacion> returnValue = new HashSet<Notificacion>();
		
		for(Notificacion notificacion : this.getNotificaciones()){
			if (notificacion.getInfraccion().equals(infraccion)){
				//si la infraccion esta en al notificacion la agrego
				returnValue.add(notificacion);
			}
		}
		return returnValue;
		
	}
	
	public Set<Notificacion> notificacionesEnviadas(Infraccion infraccion) {
		Set<Notificacion> returnValue = new HashSet<Notificacion>();
		Iterator<Notificacion> iterator = this.notificaciones(infraccion).iterator();
		while (iterator.hasNext()){
				Notificacion notificacion = iterator.next();
				if(notificacion.fueEnviada()) returnValue.add(notificacion);
			}
		return returnValue;
	}
	
	public void agregarNotificacion(Notificacion notificacion){
		this.getNotificaciones().add(notificacion);
	}
	
	public static HomeNotificaciones Instance(){
		if (instance == null) instance = new HomeNotificaciones();
		return instance;
	   } 
	
	public void reset(){
		this.notificaciones = null;
	}

	
	public Set<Notificacion> getNotificaciones() {
		if (notificaciones == null) notificaciones = new HashSet<Notificacion>();
		return notificaciones;
	}

}
